<template>
    <div>
      <!--头部-->
 		<header class="top_tips">
 			<!--home页面头部，通过父组件传递的属性fatherComponent设置显示哪一个模块-->
 			<span class="num_tip" v-if="father==='home'">{{itemData.level}}</span>
            <span class="num_tip" v-else>题目{{itemNum}}</span>
 		</header>	
 		<!--home页面内容-->
 		<div v-if="father==='home'">
 			<!--home页面内容中的图片-->
 			<div class="home_logo item_container_style"></div>
 			<!--开始按钮-->
 			<router-link to="item/1" class="start button_style" ></router-link>
 		</div>
 		
         <!--item页面内容-->
 		<div v-else>
 			<!--item页面内容中的题目选项-->
 			<div class="item_container_style item_back">
 				<!--选项内容，只有当状态state中的属性itemDetail数组的长度大于0时才显示-->
 				<div class="item_list_container" v-if="itemData.itemDetail">
 					<!--题目标题-->
    				<header class="item_title">{{itemData.itemDetail[itemNum-1].topic_name}}</header>
    				<!--题目选项列表-->
    				<ul>
    					<!--遍历state中的itemDatail中的topic_answer数组-->
    					<li  class="item_list" 
							v-for="(d,i) in itemData.itemDetail[itemNum-1].topic_answer" :key="i"
							@click="chooseAnswer(d,i)">
    						<!--选项的标号-->
    						<span class="option_style" :class="{has_choosed:chooseIndex===i}" >{{chooseTypes[i]}}</span>
    						<!--选项内容-->
    						<span class="option_detail">{{d.answer_name}}</span>
    					</li>
    				</ul>
    			</div> 			
 			</div>
 			<!--item页面中的按钮-->
 			<!--如果还有题目，则显示下一项按钮图片-->
 			<span class="next_item button_style" @click="nextItem" v-if="itemNum<itemData.itemLength"></span>
 			<!--如果没有题目了，则显示提交按钮图片-->
    		<span class="submit_item button_style" v-else @click="sumbitItem"></span>
 		</div> 		
    </div>
</template>

<script>
	import axios from 'axios';

    export default {
        name:'ItemContainer',
		props:['father'],
		data(){
			return {
				itemData:{},
				itemNum:'',		//题号
				chooseTypes:['A','B','C','D'],
				chooseIndex:null,	//是否选中过答案的标识位
			}
		},
		//请求数据
		created(){
			//异步操作
			axios.get('http://192.168.6.229/www/happyfir_php/getItemData.php')
			.then(res=>{
				console.log('result:',res);
				this.itemData=res.data;
			})
			.catch(err=>{
				console.log('error',err);
			});

			//初始化题号
			this.setItemNum(this.$route);
			
		},
		//动态路由间切换时更新动态路由显示的组件的数据
		watch:{
			'$route':function(to,from){
				this.setItemNum(to);
				console.log('route:',to);
			}
		},
		methods: {
			setItemNum(to){
	   			//过滤掉home页的处理
				if(to.name==='Item'){
					var num=parseInt(to.params.id);

					if(num&&((!this.itemData.itemLength)||num<=this.itemData.itemLength)){
						this.itemNum=num;
					}else{
						// this.itemNum=1;
						// this.$router.replace('/item/1');
						this.$router.replace({name:'Item',params:{id:1}});//强制让路由参数为1
					}
				}
			},
			nextItem(){
				//下一题
				if(this.chooseIndex==null){
					//如果没有选中过任何答案，则弹窗提示
					alert('你还没有选择过答案!');
				}else{
					//否则，进入下一题页面
					this.$router.push({name:'Item',params:{id:++this.itemNum}});

					this.chooseIndex=null;//将标识重置为null
				}
			},
			//提交按钮的点击事件
			sumbitItem(){
				//如果没有选中过任何答案，则弹窗提示
				if(this.chooseIndex==null){
					//如果没有选中过任何答案，则弹窗提示
					alert('你还没有选择过答案!');
					return;
				}
				
				//否则，将答案发送给后台，获取分数
				//进入分数页面，并将分数传递给分数页面
				axios.get(`http://192.168.6.229/www/happyfir_php/getScore.php?answer=${encodeURI(JSON.stringify(this.userAnswers))}`)
				.then(res=>{
					console.log('分数',res);
					
					//将分数传给第三个页面的方式1：
					//this.$router.push({name:'Score',query:{score:res.data}});

					//将分数传给第三个页面的方式2：
					this.$store.commit('setScore',res.data);
					this.$router.push('/score');
				})
			},
			//每一个答案选项的点击事件
			chooseAnswer(item,i){	//选择答案
				//1.让当前li的标号触发
				this.chooseIndex=i;

				//2.将用户选中的答案保存
				if(!this.userAnswers){
					//如果this.userAnswers==undefined;
					this.userAnswers={};//初始化为对象
				}
				this.userAnswers[item.topic_id]=item.topic_answer_id;//{20:67}
			}
		},
    }
</script>

<style>
    body{
	    background: url(../images/1-1.jpg) no-repeat;
	}
	/*头部样式 * */
	.top_tips{
		position: absolute;
		height: 7.35rem;
		width: 3.25rem;
		top: -1.3rem;
		right: 1.6rem;
		background: url(../images/WechatIMG2.png) no-repeat;
		background-size: 100% 100%;
		z-index: 10;
		/*em:相对单位,相对当前元素的字体大小的单位，1个字体大小=1em
		 rem:相对根元素的字体大小
		 * */
	}
	.num_tip{
		position: absolute;
		left: 0.48rem;
		bottom: 1.1rem;
		height: 0.7rem;
		width: 2.5rem;
		font-size: 0.6rem;
		font-family: '黑体';
		font-weight: 600;
		color: #a57c50;
		text-align: center;
	}
	/*头部样式结束*/
	/*主体内容样式*/
	.item_container_style{
		height: 11.625rem;
		width: 13.15rem;
		background-repeat: no-repeat;
		position: absolute;
		top: 4.1rem;
		left: 1rem;
	}
	/*home页面内容样式*/
	.home_logo{
		background-image: url(../images/1-2.png);
		background-size: 13.142rem 100%;
		background-position: right center;
	}
	.button_style{
        display: block;
        height: 2.1rem;
        width: 4.35rem;
        background-size: 100% 100%;
        position: absolute;
        top: 16.5rem;
        left: 50%;
        margin-left: -2.4rem;
        background-repeat: no-repeat;
	}
	.start{
        background-image: url(../images/1-4.png);
    }
    /*home页面内容样式结束*/

    /*item页面内容样式*/
   	.item_back{
		background-image: url(../images/2-1.png);
		background-size: 100% 100%;
	}
   	
   	.item_list_container{
    	position: absolute;
    	height: 7.0rem;
    	width: 8.0rem;
    	top: 2.4rem;
    	left: 3rem;
		-webkit-font-smoothing: antialiased;
    }
   	.item_title{
		font-size: 0.65rem;
		color: #fff;
		line-height: 0.7rem;
	}	
	
	.item_list{
		font-size: 0;
		margin-top: 0.4rem;
		width: 10rem;
	}
	.item_list span{
		display: inline-block;
		font-size: 0.6rem;
		color: #fff;
		vertical-align: middle;
	}
	.item_list .option_style{
		height: 0.725rem;
		width: 0.725rem;
		border: .0625rem solid #fff;
		border-radius: 50%;
		line-height: 0.725rem;
		text-align: center;
		margin-right: 0.3rem;
		font-size: 0.5rem;
		font-family: 'Arial';
	}
	.item_list .has_choosed{
		background-color: #ffd400;
		color: #575757;
		border-color: #ffd400;
	}
	.item_list .option_detail{
		width: 7.5rem;
		padding-top: 0.11rem;
	}
	
	 .next_item{
    	background-image: url(../images/2-2.png);
    }
    .submit_item{
    	background-image: url(../images/3-1.png);
    }
 	/*item页面内容样式结束*/   
</style>